

# ConfigFile相关操作函数库

class_name myConfig

# 将非加密的INI形式文件加载为一个字典
static func load_config_as_dir(fPath:String) -> Dictionary:
	var cfg = ConfigFile.new()
	cfg.load(fPath)
	var dir = {}
	# 获取section集合
	var secs = cfg.get_sections()
	for sec in secs:
		dir[sec] = {} # 添加每个section为一个字典
		var keys = cfg.get_section_keys(sec)
		for key in keys:
			dir[sec][key] = cfg.get_value(sec,key) # 添加每个键值对为section下的键值对
	return dir 
	pass

# 将字典保存为一个ConfigFile
static func save_dir_as_config(fPath:String,dir:Dictionary):
	var cfg = ConfigFile.new()
	for sec in dir: 
		for key in dir[sec]:
			cfg.set_value(sec,key,dir[sec][key])
	cfg.save(fPath)
	pass


# 加载单个值
static func get_config_value(fPath:String,section:String,key:String):
	var cfg = ConfigFile.new()
	cfg.load(fPath) # 加载
	if cfg.has_section_key(section,key): # 存在相应的节和键值对
		return cfg.get_value(section,key,"") # 默认值为空字符串
	else: # 不存在相应的节和键值对
		cfg.set_value(section,key,"") # 创建相应的节和键值对，键值为空字符串
		return cfg.get_value(section,key) 

# 简化取值函数
static func get_config_value2(cfg:ConfigFile,section:String,key:String):
	if cfg.has_section_key(section,key): # 存在相应的节和键值对
		return cfg.get_value(section,key) # 默认值为空字符串
